Ieee 802.11 enhancements for high efficiency positioning

ABSTRACT

A ranging operation between an initiator device and a responder device may be performed by receiving, from the initiator device, a data frame including a request for the responder device to report its actual Short Interframe Space (SIFS) duration to the initiator device; creating a response frame; determining the actual SIFS duration based on the received data frame and the response frame; embedding SIFS information indicative of the actual SIFS duration of the responder device into the response frame; and sending the response frame to the initiator device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Patent Application claims priority to U.S. patent application Ser.No. 14/837,775 entitled “IEEE 802.11 ENHANCEMENTS FOR HIGH EFFICIENCYPOSITIONING” filed on Aug. 27, 2015, which claim priority to U.S.Provisional Patent Application No. 62/050,674 entitled “IEEE 802.11ENHANCEMENTS FOR HIGH EFFICIENCY POSITIONING” filed on Sep. 15, 2014,all assigned to the assignee hereof. The disclosures of all priorApplications are considered part of and are incorporated by reference inthis Patent Application.

TECHNICAL FIELD

The example embodiments relate generally to wireless networks, andspecifically to ranging operations performed between Wi-Fi enableddevices.

BACKGROUND OF RELATED ART

The recent proliferation of Wi-Fi access points in wireless local areanetworks (WLANs) has made it possible for navigation systems to usethese access points for position determination, especially in areaswhere there are a large concentration of active Wi-Fi access points(e.g., urban cores, shopping centers, office buildings, and so on). Forexample, a client device or station (STA) such as a cell phone or tabletcomputer may use the round trip time (RTT) of signals transmitted to andfrom the access points (APs) to determine the distances between the STAand the APs. Once the distances between the STA and three or more APsare determined, the location of the STA may be estimated usingtrilateration techniques.

More generally, the distance between a pair of devices may be determinedusing the RTT of signals exchanged between the devices during rangingoperations. Because ranging operations are becoming more and moreimportant (e.g., for indoor positioning), it is desirable to increasethe accuracy of ranging operations using minimal capacity of thewireless medium.

SUMMARY

This Summary is provided to introduce in a simplified form a selectionof concepts that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tolimit the scope of the claimed subject matter.

Aspects of the present disclosure can be implemented in a wirelessnetwork to perform ranging operations between wireless devices. In oneexample, a method for performing a ranging operation between aninitiator device and a responder device is disclosed. The method may beperformed by the responder device and can include receiving, from theinitiator device, a data frame including a request for the responderdevice to report its actual Short Interframe Space (SIFS) duration tothe initiator device; creating a response frame; determining the actualSIFS duration based on the received data frame and the response frame;embedding SIFS information indicative of the actual SIFS duration of theresponder device into the response frame; and sending the response frameto the initiator device. In some implementations, the responder devicemay determine its actual SIFS duration by determining a time of arrival(TOA) of the data frame, determining a time of departure (TOD) of theresponse frame, and determining the actual SIFS duration based at leastin part on the determined TOA of the data frame and the determined TODof the response frame. In some aspects, the actual SIFS durationindicates a time duration between (1) a time that the responder devicereceives an end of a last symbol of the data frame from the initiatordevice and (2) a time that the responder device transmits a beginning ofa first symbol of the response frame to the initiator device.

The data frame may be a fine timing measurement (FTM) frame. Theresponse frame may be an acknowledgement (ACK) frame or a blockacknowledgement (BA) frame including a field or an information element(IE) to store the SIFS information. In some implementations, the SIFSinformation may include a difference value indicative of a timedifference between the actual SIFS duration and a standard SIFSduration, for example, as defined by the IEEE 802.11 family ofstandards. In other implementations, the SIFS information may includethe difference value and a median SIFS duration of the second wirelessdevice.

In another example, a responder device is disclosed. The responderdevice can include one or more transceivers to exchange signals with atleast the initiator device, one or more processors, and a memory storinginstructions. The instructions can be executed by the one or moreprocessors to cause the responder device to receive, from the initiatordevice, a data frame including a request for the responder device toreport its actual Short Interframe Space (SIFS) duration to theinitiator device; create a response frame; determine the actual SIFSduration of the responder device based on the received data frame andthe response frame; embed SIFS information indicative of the actual SIFSduration into the response frame; and send the response frame to theinitiator device.

In another example, a non-transitory computer-readable storage medium isdisclosed. The non-transitory computer-readable storage medium may storeinstructions that, when executed by one or more processors of aresponder device, cause the responder device to perform a number ofoperations. The number of operations can include receiving, from theinitiator device, a data frame including a request for the responderdevice to report its actual Short Interframe Space (SIFS) duration tothe initiator device; creating a response frame; determining the actualSIFS duration based on the received data frame and the response frame;embedding SIFS information indicative of the actual SIFS duration of theresponder device into the response frame; and sending the response frameto the initiator device.

In another example, a responder device is disclosed. The responderdevice can include means for receiving, from the initiator device, adata frame including a request for the responder device to report itsactual Short Interframe Space (SIFS) duration to the initiator device;means for creating a response frame; means for determining the actualSIFS duration based on the received data frame and the response frame;embedding SIFS information indicative of the actual SIFS duration of theresponder device into the response frame; and sending the response frameto the initiator device.

BRIEF DESCRIPTION OF THE DRAWINGS

The example embodiments are illustrated by way of example and are notintended to be limited by the figures of the accompanying drawings. Likenumbers reference like elements throughout the drawings andspecification.

FIG. 1A is a sequence diagram depicting an example ranging operation.

FIG. 1B is a sequence diagram depicting another example rangingoperation.

FIG. 2 is a block diagram of a wireless system within which the exampleembodiments may be implemented.

FIG. 3 is a block diagram of a wireless device in accordance with someembodiments.

FIG. 4 is a sequence diagram depicting a ranging operation in accordancewith some embodiments.

FIG. 5 shows an illustrative flowchart depicting the ranging operationof FIG. 4, in accordance with the example embodiments.

FIG. 6A depicts an example acknowledgement frame in accordance with someembodiments.

FIG. 6B depicts an example block acknowledgement frame in accordancewith some embodiments.

FIG. 7A depicts an example acknowledgement frame in accordance withother embodiments.

FIG. 7B depicts an example block acknowledgement frame in accordancewith other embodiments.

FIG. 8 depicts an example information element for reporting ShortInterframe Space (SIFS) information in response frames in accordancewith some embodiments.

FIG. 9 is another block diagram of several sample aspects of anapparatus configured to perform ranging operations as taught herein.

DETAILED DESCRIPTION

The example embodiments are described below in the context of WLANsystems for simplicity only. It is to be understood that the exampleembodiments are equally applicable to other wireless networks (e.g.,cellular networks, pico networks, femto networks, satellite networks),as well as for systems using signals of one or more wired standards orprotocols (e.g., Ethernet and/or HomePlug/PLC standards), and forperforming ranging operations between various devices (e.g., between aSTA and a wireless AP, between APs, and so on). As used herein, theterms “WLAN” and “Wi-Fi®” may include communications governed by theIEEE 802.11 family of standards, Bluetooth, HiperLAN (a set of wirelessstandards, comparable to the IEEE 802.11 standards, used primarily inEurope), and other technologies having relatively short radiopropagation range. Thus, the terms “WLAN” and “Wi-Fi” may be usedinterchangeably herein. In addition, although described below in termsof an infrastructure WLAN system including one or more APs and a numberof STAs, the example embodiments are equally applicable to other WLANsystems including, for example, multiple WLANs, Independent BasicService Set (IBSS) networks, ad-hoc networks, peer-to-peer (P2P)networks (e.g., operating according to the Wi-Fi Direct protocols),and/or Hotspots.

In addition, although described herein in terms of exchanging framesbetween wireless devices, the example embodiments may be applied to theexchange of any data unit, packet, and/or frame between wirelessdevices. Thus, the term “frame” may include any frame, packet, or dataunit such as, for example, protocol data units (PDUs), MAC protocol dataunits (MPDUs), and physical layer convergence procedure protocol dataunits (PPDUs). The term “A-MPDU” may refer to aggregated MPDUs.

In the following description, numerous specific details are set forthsuch as examples of specific components, circuits, and processes toprovide a thorough understanding of the present disclosure. Also, in thefollowing description and for purposes of explanation, specificnomenclature is set forth to provide a thorough understanding of theexample embodiments. However, it will be apparent to one skilled in theart that these specific details may not be required to practice theexample embodiments. In other instances, well-known circuits and devicesare shown in block diagram form to avoid obscuring the presentdisclosure. The term “coupled” as used herein means connected directlyto or connected through one or more intervening components or circuits.Any of the signals provided over various buses described herein may betime-multiplexed with other signals and provided over one or more commonbuses. Additionally, the interconnection between circuit elements orsoftware blocks may be shown as buses or as single signal lines. Each ofthe buses may alternatively be a single signal line, and each of thesingle signal lines may alternatively be buses, and a single line or busmight represent any one or more of a myriad of physical or logicalmechanisms for communication between components. The example embodimentsare not to be construed as limited to specific examples described hereinbut rather to include within their scopes all embodiments defined by theappended claims.

Some portions of this disclosure which follow are presented in terms ofprocedures, logic blocks, processing and other symbolic representationsof operations on data bits within a computer memory. These descriptionsand representations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. In this disclosure, a procedure, logicblock, process, or the like, is conceived to be a self-consistentsequence of steps or instructions leading to a desired result. The stepsare those requiring physical manipulations of physical quantities.Usually, although not necessarily, these quantities take the form ofelectrical or magnetic signals capable of being stored, transferred,combined, compared, and otherwise manipulated in a computer system.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout this disclosure,discussions utilizing the terms such as “accessing,” “receiving,”“sending,” “using,” “selecting,” “determining,” “normalizing,”“multiplying,” “averaging,” “monitoring,” “comparing,” “applying,”“updating,” “measuring,” “deriving” or the like, refer to the actionsand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

Embodiments described herein may be discussed in the general context ofprocessor-executable instructions residing on some form ofprocessor-readable medium, such as program modules, executed by one ormore computers or other devices. Generally, program modules includeroutines, programs, objects, components, data structures, etc., thatperform particular tasks or implement particular abstract data types.The functionality of the program modules may be combined or distributedas desired in various embodiments.

The techniques described herein may be implemented in hardware,software, firmware, or any combination thereof, unless specificallydescribed as being implemented in a specific manner Any featuresdescribed as modules or components may also be implemented together inan integrated logic device or separately as discrete but interoperablelogic devices. If implemented in software, the techniques may berealized at least in part by a non-transitory processor-readable storagemedium comprising instructions that, when executed, performs one or moreof the methods described above. The non-transitory processor-readabledata storage medium may form part of a computer program product, whichmay include packaging materials.

The non-transitory processor-readable storage medium may comprise randomaccess memory (RAM) such as synchronous dynamic random access memory(SDRAM), read only memory (ROM), non-volatile random access memory(NVRAM), electrically erasable programmable read-only memory (EEPROM),FLASH memory, other known storage media, and the like. The techniquesadditionally, or alternatively, may be realized at least in part by aprocessor-readable communication medium that carries or communicatescode in the form of instructions or data structures and that may beaccessed, read, and/or executed by a computer or other processor.

The various illustrative logical blocks, modules, circuits andinstructions described in connection with the embodiments disclosedherein may be executed by one or more processors, such as one or moredigital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), application specificinstruction set processors (ASIPs), field programmable gate arrays(FPGAs), or other equivalent integrated or discrete logic circuitry. Theterm “processor,” as used herein may refer to any of the foregoingstructure or any other structure suitable for implementation of thetechniques described herein. In addition, in some aspects, thefunctionality described herein may be provided within dedicated softwaremodules or hardware modules configured as described herein. Also, thetechniques could be fully implemented in one or more circuits or logicelements. A general purpose processor may be a microprocessor, but inthe alternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices (e.g., a combinationof a DSP and a microprocessor), a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any othersuitable configuration.

As mentioned above, the distance between a pair of wireless devices maybe determined using the RTT of signals or frames exchanged between thewireless devices (e.g., during a ranging operation). For example,referring to the example ranging operation 100 of FIG. 1A, the distance(d) between a first wireless device (D1) and a second wireless device(D2) may be estimated as d=c*RTT/2, where c is the speed of light, andRTT is the summation of the actual signal propagation times of a request(REQ) frame and an acknowledgement (ACK) frame exchanged between thefirst device D1 and the second device D2. More specifically, device D2may estimate the value of RTT using the time of departure (TOD) of theREQ frame transmitted from device D2, the time of arrival (TOA) of theACK frame received by device D2, and the SIFS duration of device Dl.

The SIFS duration, which stands for the Short Interframe Space duration,corresponds to the duration of time between device D1 receiving the REQframe and device D1 transmitting the ACK frame. The SIFS duration, whichallows wireless devices time to switch their transceivers from a receivemode (e.g., to receive the REQ frame) to a transmit mode (e.g., totransmit the ACK frame), may be defined as the time required for thewireless device to process a received frame (e.g., a REQ frame) and toinitiate transmission of a response frame (e.g., an ACK frame).

Because different make-and-models (and sometimes even samemake-and-models) of wireless devices may have different processingdelays, the precise value of SIFS may vary between devices (and evenbetween successive frame receptions/transmissions in the same device).As a result, the value of SIFS is typically estimated, which often leadsto errors in estimating the distance between two devices. Morespecifically, the IEEE 802.11 standards currently define the SIFSduration as 10 microseconds (us) +/−900 nano-seconds (ns) for signalstransmitted in the 2.4 GHz frequency band, 16 us +/−900 ns for signalstransmitted in the 5 GHz frequency band, and 3 us +/−900 ns for signalstransmitted in the 60 GHz frequency band. The tolerances in these“standard” SIFS durations may decrease the accuracy of RTT estimates.For example, even if the SIFS duration of device D1 may be estimatedwithin +/−25 ns, a ranging error of +/−7.5 meters may result (which maybe unacceptable for many positioning systems).

To reduce ranging errors resulting from uncertainties in SIFS durations,recent revisions to the IEEE 802.11 standards call for each rangingdevice to capture timestamps of incoming and outgoing frames so that thevalue of RTT may be determined without using SIFS durations. Forexample, FIG. 1B shows an example ranging operation 110 depicting aranging operation between device D1 and device D2 performed using FineTiming Measurement (FTM) frames in accordance with the IEEE 802.11REVmcstandards. For the example of FIG. 1B, device D2 requests the rangingoperation, and may therefore be designated as the initiator device;device D1 responds to the requested ranging operation, and may thereforebe designated as the responder device. As depicted in FIG. 1B, device D2sends a Fine Timing Measurement Request (FTM_REQ) frame to device D1,which responds with an ACK frame. The exchange of the FTM_REQ frame andthe ACK frame is a handshake process 111 that not only signals an intentto perform a ranging operation but also allows each of devices D1 and D2to determine whether the other of devices D1 and D2 supports capturingtimestamps.

Assuming that both device D1 and device D2 support capturing timestamps,device D1 initiates a ranging operation 112 by sending a first FTM frame(FTM_1) to device D2, and captures the TOD of FTM_1 at time t₁. DeviceD2 receives the FTM_1 and captures the TOA of FTM_1 at time t₂. DeviceD2 responds with an ACK frame, and captures the TOD of the ACK frame attime t₃. Device D1 receives the ACK frame and captures the TOA of theACK frame at time t₄. At time t₅, device D1 sends to device D2 a secondFTM frame (FTM_2) that includes the timestamps captured at times t₁ andt₄. Device D2 receives the FTM_2 frame at time t₆, and may capture itstimestamp. Device D2 sends an ACK frame to device D1 at time t₇. DeviceD1 receives the ACK frame at time t₈.

Upon receiving FTM_2 at time t₆, device D2 has timestamp values fortimes t₁, t₂, t₃, and t₄ that correspond to the TOD of FTM_1 from deviceD1, the TOA of FTM_1 at device D2, the TOD of the ACK frame from deviceD2, and the TOA of the ACK frame at device D1, respectively. Thereafter,device D2 may determine RTT as (t₄−t₃)+(t₂-t₁). Because determining theRTT value does not involve estimating the SIFS duration for eitherdevice D1 or device D2, the determined RTT value does not involve errorsresulting from uncertainties in SIFS durations.

Although more accurate than the example ranging operation 100 of FIG.1A, the example ranging operation 110 of FIG. 1B involves an exchange of6 frames (e.g., compared to an exchange of only 2 frames in the exampleranging operation 100 depicted in FIG. 1A) to obtain a single RTTmeasurement, which undesirably impacts throughput and increases latency.In addition, although device D2 requested the ranging operation 110,device D1 transmits the FTM frames, captures timestamps, and transmitsthe captured timestamps to device D2, all of which consume power andresources. For environments in which device D1 is a mobile stationpowered by a battery, this consumption of power may reduce the batterylife of device D1 (even though device D1 did not request the rangingoperation).

Thus, in accordance with the example embodiments, methods andapparatuses for performing a ranging operation are disclosed that maydetermine an RTT value between an initiator device and a responderdevice using an exchange of only 2 frames without estimating the SIFSduration of the responder device. More specifically, ranging operationsdisclosed herein may increase the accuracy of RTT measurements betweenwireless devices (e.g., as compared with the example ranging operation100 of FIG. 1A) by requesting, in a data frame sent to the responderdevice, the responder device to report its actual SIFS duration to theinitiator device in a response frame. In this manner, the initiatordevice does not have to estimate the SIFS duration of the responderdevice. For example, in some implementations, the initiator device mayinitiate a ranging operation with the responder device by sending a dataframe to the responder device. The data frame causes the responderdevice to report its actual SIFS duration to the initiator device in aresponse frame. The initiator device may receive the response frame,which includes information indicative of the actual SIFS duration of theresponder device. The initiator device may then determine the RTT valueof the data frame and the response frame using the TOD of the data framefrom the initiator device, the TOA of the response frame at theinitiator device, and the actual SIFS duration of the responder device.In this manner, ranging operations of the example embodiments may beperformed using only 2 exchanged frames to determine the RTT valuewithout the initiator device estimating the responder device's SIFSduration, thereby eliminating ranging errors resulting fromuncertainties in the SIFS duration of the responder device. In addition,because the responder device sends only one frame to the initiatordevice during ranging operations of the example embodiments, powerconsumption of the responder device may be reduced (e.g., as comparedwith the example ranging operation 110 of FIG. 1B). Reducing the powerconsumption of the responder device during ranging operations may beimportant, for example, when the responder device is a mobile devicehaving a limited power supply (e.g., a battery). These are at least someof the technical solutions provided by the example embodiments to theaforementioned technical problems.

FIG. 2 is a block diagram of a wireless system 200 within which theexample embodiments may be implemented. The wireless system 200 is shownto include four wireless stations STA1-STA4, a wireless access point(AP) 210, and a wireless local area network (WLAN) 220. The WLAN 220 maybe formed by a plurality of Wi-Fi access points (APs) that may operateaccording to the IEEE 802.11 family of standards (or according to othersuitable wireless protocols). Thus, although only one AP 210 is shown inFIG. 2 for simplicity, it is to be understood that WLAN 220 may beformed by any number of access points such as AP 210. The AP 210 isassigned a unique media access control (MAC) address that is programmedtherein by, for example, the manufacturer of the access point.Similarly, each of STA1-STA4 is also assigned a unique MAC address. Forsome embodiments, the wireless system 200 may correspond to amultiple-input multiple-output (MIMO) wireless network. Further,although the WLAN 220 is depicted in FIG. 2 as an infrastructure basicservice set (BSS) network, for other example embodiments, WLAN 220 maybe an independent basic service set (IBSS) network, an ad-hoc network,or a peer-to-peer (P2P) network (e.g., operating according to the Wi-FiDirect protocols). Similarly, although four stations STA1-STA4 are shownin FIG. 2, WLAN 220 and/or AP 210 may be associated with other numbersof stations.

Each of stations STA1-STA4 may be any suitable Wi-Fi enabled wirelessdevice including, for example, a cell phone, personal digital assistant(PDA), tablet device, laptop computer, or the like. Each of stationsSTA1-STA4 may also be referred to as a user equipment (UE), a subscriberstation, a mobile unit, a subscriber unit, a wireless unit, a remoteunit, a mobile device, a wireless device, a wireless communicationsdevice, a remote device, a mobile subscriber station, an accessterminal, a mobile terminal, a wireless terminal, a remote terminal, ahandset, a user agent, a mobile client, a client, or some other suitableterminology. For at least some embodiments, each of stations STA1-STA4may include one or more transceivers, one or more processing resources(e.g., processors and/or ASICs), one or more memory resources, and apower source (e.g., a battery). The memory resources may include anon-transitory computer-readable medium (e.g., one or more nonvolatilememory elements, such as EPROM, EEPROM, Flash memory, a hard drive,etc.) that stores instructions for performing operations described belowwith respect to FIG. 5.

The AP 210 may be any suitable device that allows one or more wirelessdevices to connect to a network (e.g., a local area network (LAN), widearea network (WAN), metropolitan area network (MAN), and/or theInternet) via AP 210 using Wi-Fi, Bluetooth, or any other suitablewireless communication standards. For at least one embodiment, AP 210may include one or more transceivers, one or more processing resources(e.g., processors and/or ASICs), one or more memory resources, and apower source. The memory resources may include a non-transitorycomputer-readable medium (e.g., one or more nonvolatile memory elements,such as EPROM, EEPROM, Flash memory, a hard drive, etc.) that storesinstructions for performing operations described below with respect toFIG. 5.

For the stations STA1-STA4 and/or AP 210, the one or more transceiversmay include Wi-Fi transceivers, Bluetooth transceivers, cellulartransceivers, and/or other suitable radio frequency (RF) transceivers(not shown for simplicity) to transmit and receive wirelesscommunication signals. Each transceiver may communicate with otherwireless devices in distinct operating frequency bands and/or usingdistinct communication protocols. For example, the Wi-Fi transceiver maycommunicate within a 2.4 GHz frequency band, within a 5 GHz frequencyband in accordance with the IEEE 802.11 specification, and/or within a60 GHz frequency band. The cellular transceiver may communicate withinvarious RF frequency bands in accordance with a 4G Long Term Evolution(LTE) protocol described by the 3rd Generation Partnership Project(3GPP) (e.g., between approximately 700 MHz and approximately 3.9 GHz)and/or in accordance with other cellular protocols (e.g., a GlobalSystem for Mobile (GSM) communications protocol). In other embodiments,the transceivers included within each of the stations STA1-STA4 may beany technically feasible transceiver such as a ZigBee transceiverdescribed by a specification from the ZigBee specification, a WiGigtransceiver, and/or a HomePlug transceiver described a specificationfrom the HomePlug Alliance.

Further, the example embodiments described herein, each of the stationsSTA1-STA4 (and AP 210) may include radio frequency (RF) rangingcircuitry (e.g., formed using well-known software modules, hardwarecomponents, and/or a suitable combination thereof) that may be used toestimate the distance between itself and one or more other Wi-Fi enableddevices using ranging techniques described herein. In addition, each ofthe stations STA1-STA4 and/or AP 210 may include a local memory (notshown in FIG. 2 for simplicity) to store a cache of Wi-Fi access pointand station data.

For at least some embodiments, ranging operations described herein maybe performed without using the AP 210, for example, by having a numberof the stations operating in an ad-hoc or peer-to-peer mode, therebyallowing the stations to range one another even when outside thereception range of AP 210 or a visible WLAN (or other wireless network).In addition, for at least some embodiments, ranging operations describedherein may be performed between two APs that are in wireless range ofeach other.

FIG. 3 shows a wireless device 300 that may be one embodiment of thestations STA1-STA4 and/or AP 210 of FIG. 2. The wireless device 300 mayinclude a number of transceivers 320, a processor 330, a memory 340 anda number of antennas 350(1)-350(n). The transceivers 320 may be coupledto antennas 350(1)-350(n) either directly or through an antennaselection circuit (not shown for simplicity). The transceivers 320 maybe used to transmit signals to and receive signals from other wirelessdevices (e.g., APs and/or STAs), and may be used to scan the surroundingenvironment to detect and identify nearby access points and/or STAs(e.g., within wireless range of wireless device 300). As depicted inFIG. 3, the transceivers 320 may include any number of transceiverchains 321(1)-321(m), each of which includes a transmit chain to processand transmit signals to other wireless devices via antennas350(1)-350(n) and includes a receive chain to process signals receivedfrom antennas 350(1)-350(n). Thus, for example embodiments, the wirelessdevice 300 may be configured for MIMO operations. The MIMO operationsmay include single-user MIMO (SU-MIMO) operations and multi-user MIMO(MU-MIMO) operations.

Although not shown in FIG. 3 for simplicity, the wireless device 300 mayinclude one or more baseband processors to process signals received fromprocessor 330 and/or memory 340 and to forward the processed signals totransceivers 320 for transmission via one or more of antennas350(1)-350(n), and may be used to process signals received from one ormore of antennas 350(1)-350(n) via transceivers 320 and to forward theprocessed signals to processor 330 and/or memory 340.

Although processor 330 is depicted in the example of FIG. 3 as beingcoupled between transceivers 320 and memory 340, for other embodiments,transceivers 320, processor 330, and/or memory 340 may be connectedtogether using one or more buses (not shown for simplicity).

Memory 340 may include a Wi-Fi database 341 that may store locationdata, configuration information, data rates, MAC addresses, and othersuitable information for a number of wireless devices. The Wi-Fidatabase 341 may also store profile information for a number of wirelessdevices. The profile information for a given wireless device may includeinformation including, for example, the wireless device's SSID, channelinformation, RSSI values, goodput values, channel state information(CSI), and connection history with wireless device 300.

Memory 340 may also include a SIFS database 342 that may store, forexample, a number of previously determined SIFS durations for thewireless device 300, one or more median SIFS durations for wirelessdevice 300, and/or whether other wireless devices support rangingoperations in accordance with the example embodiments.

Memory 340 may also include a non-transitory computer-readable medium(e.g., one or more nonvolatile memory elements, such as EPROM, EEPROM,Flash memory, a hard drive, and so on) that may store the followingsoftware (SW) modules:

-   -   a ranging SW module 343 to determine RTT values and/or the        distance between wireless device 300 and another device (e.g.,        as described for one or more operations of FIG. 5);    -   a positioning SW module 344 to determine the location of        wireless device 300 based on the distances determined by the        ranging SW module 343 and/or based on the locations of other        Wi-Fi enabled devices (e.g., as described for one or more        operations of FIG. 5);    -   a timestamp SW module 345 to capture timestamps (e.g., frame TOD        and/or frame TOA information) and to determine actual SIFS        durations associated with frame exchanges of wireless device 300        (e.g., as described for one or more operations of FIG. 5); and    -   a frame formation and exchange SW module 346 to create, send,        and/or receive data frames and response frames of the example        embodiments (as well as other suitable data frames, action        frames, and control frames) to and from other wireless devices,        to embed SIFS requests into frames transmitted to other wireless        devices, and/or to embed information indicative of the actual        SIFS duration of wireless device 300 into response frames (e.g.,        as described for one or more operations of FIG. 5).        Each software module includes instructions that, when executed        by processor 330, cause wireless device 300 to perform the        corresponding functions. The non-transitory computer-readable        medium of memory 340 thus includes instructions for performing        all or a portion of the operations of FIG. 5.

Processor 330, which is shown in the example of FIG. 3 as coupled totransceivers 320 and to memory 340, may be any suitable one or moreprocessors capable of executing scripts or instructions of one or moresoftware programs stored in wireless device 300 (e.g., within memory340). For example, processor 330 may execute ranging SW module 343,positioning SW module 344, timestamp SW module 345, and frame formationand exchange SW module 346. The ranging SW module 343 may be executed byprocessor 330 to determine the distance between wireless device 300 andanother Wi-Fi enabled device using RF ranging operations. Thepositioning SW module 344 may be executed by processor 330 to determinethe location of wireless device 300 using nearby Wi-Fi enabled devicesas reference points. The timestamp SW module 345 may be executed byprocessor 330 to capture timestamps (e.g., frame TOD and/or frame TOAinformation) and to determine actual SIFS durations associated withframe exchanges of wireless device 300. The frame formation and exchangeSW module 346 may be executed by processor 330 to create, send, and/orreceive data frames and response frames of the example embodiments (aswell as other suitable data frames, action frames, and control frames)to and from other wireless devices, to embed SIFS requests into framestransmitted to other wireless devices, and/or to embed informationindicative of the actual SIFS duration of wireless device 300 intoresponse frames.

FIG. 4 is a sequence diagram depicting an example ranging operation 400performed between two wireless devices D1 and D2 in accordance withexample embodiments. Devices D1 and D2 may be any suitable Wi-Fi enableddevices including, for example, a mobile device (e.g., a smart phone ortablet computer) or a stationary device (e.g., a wireless access pointor other ranging device). For purposes of discussion herein, device D1is the initiator device, and device D2 is the responder device. For atleast some embodiments, devices D1 and D2 may each be one of AP 210 orstations STA1-STA4 of FIG. 2.

Referring also to the illustrative flow chart 500 of FIG. 5, thewireless devices D1 and D2 may, for some embodiments, exchange rangingcapabilities during an association procedure (501). The exchange ofranging capabilities may inform each of devices D1 and D2 whether theother of devices D1 and D2 supports capturing timestamps and/or is ableto determine its own SIFS duration. For at least one embodiment, theexchange of ranging capabilities may also cause device D2 (the responderdevice) to respond to one or more selected types of frames sent bydevice D1 (the initiator device) by embedding its SIFS information inresponse frames sent to device Dl. The selected types of frames sent bydevice D1 may include, for example, frames or signals that initiateranging operations with device D2.

The ranging operation 400 depicted in FIG. 4 begins with device D1creating a data frame 410 that includes a request for device D2 toreport its actual SIFS duration to device D1 (502). The request fordevice D2 to report its actual SIFS duration to device D1 mayhereinafter be referred to as the “SIFS request.” The data frame 410 maybe any suitable data frame that initiates a ranging operation withdevice D2 (or that at least causes device D2 to respond with a frameincluding its actual SIFS duration). For some embodiments, the dataframe 410 may be an FTM frame. For other embodiments, the data frame 410may be any suitable action frame, control frame, or management framethat includes the SIFS request and initiates the example rangingoperation 400.

The SIFS request may be any suitable bit pattern that, when received anddecoded by device D2, causes device D2 to report its actual SIFSduration (or at least information indicative of its actual SIFSduration) to device D1. The SIFS request may be embedded within anysuitable field of the data frame 410, or may be appended to the dataframe 410. For example, the SIFS request may be embedded within a numberof reserved bits of the data frame 410, may be embedded in aninformation element (IE) provided within or appended to the data frame410, or may be embedded in a vendor-specific information element (VSIE)provided within or appended to the data frame 410.

As mentioned above, for at least some embodiments, device D2 may agree,during the association procedure, to report its SIFS information todevice D1 in response frames sent to device D1. For these embodiments,device D1 may not include an explicit SIFS request in the data frame 410sent to device D2, for example, because device D2 may automaticallyreport its SIFS information when responding to and/or acknowledgingreceipt of one or more selected types of frames transmitted from deviceD1.

Once the data frame 410 is created, device D1 sends the data frame 410to device D2 at time t₁ (504). Device D1 determines the TOD of the dataframe 410 (e.g., TOD_(DFR)=t₁), for example, by capturing a timestamp attime t₁ (505). For some implementations, device D1 may execute thetimestamp SW module 345 of FIG. 3 to capture TOD_(DFR), and may storethe value of TOD_(DFR) in memory 340.

At time t₂, device D2 receives the data frame 410 transmitted fromdevice D1, and decodes the SIFS request (506). Device D2 may determinethe TOA of the received data frame 410 (e.g., TOA_(DFR)=t₂), forexample, by capturing a timestamp at time t₂ (508). For someimplementations, device D2 may execute the timestamp SW module 345 ofFIG. 3 to capture TOA_(DFR), and may store the value of TOA_(DFR) inmemory 340.

Device D2 creates a response frame 420 to send back to device D1, anddetermines the TOD of the response frame 420 (e.g., TOD_(RES)=t₃), forexample, by capturing a timestamp at time t₃ (510). For someimplementations, device D2 may execute the timestamp SW module 345 ofFIG. 3 to capture TOD_(RES), and may store the value of TOD_(RES) inmemory 340. The response frame 420, which may acknowledge receipt of thedata frame 410 transmitted from device D1, may include informationindicative of device D2's actual SIFS duration, as explained in moredetail below.

In response to the decoded SIFS request, device D2 may determine itsactual SIFS duration (512). Alternatively, if the data frame 410 did notinclude a SIFS request and device D2 agreed (e.g., during association)to report its SIFS information in response to receiving one or moreselected types of frames from device D1, then device D2 mayautomatically determine its actual SIFS duration. Device D2 maydetermine its actual SIFS duration in any suitable manner. For example,the actual SIFS duration of device D2 may be expressed asSIFS_(actual)=t₃−t₂=TOD_(RES)−TOA_(DFR). Thus, for some embodiments,device D2 may determine its actual SIFS duration as the time durationbetween (1) the time at which an end of a last symbol of the data frame410 is received from device D1 and (2) the time at which a beginning ofa first symbol of the response frame 420 is to be transmitted to deviceD1. For other embodiments, device D2 may have already determined itsactual SIFS duration based on one or more previous frame exchanges withdevice D1 (or alternatively based on one or more previous frameexchanges with another wireless device). Further, for at least oneembodiment, device D2 may determine its actual SIFS duration based on anaverage value or a median value of a number of previously determinedSIFS durations (e.g., for a corresponding number of previous frameexchanges with device D1 and/or another wireless device).

Next, device D2 embeds SIFS information indicative of its actual SIFSduration into the response frame 420, and transmits the response frame420 to device D1 at time t₃ (514). The response frame 420 may be anysuitable frame that responds to or acknowledges receipt of the dataframe 410 transmitted from device D1. For example, the response frame420 may be an acknowledgement (ACK) frame or a block acknowledgement(BA) frame. For at least some embodiments, the response frame 420 may bean ACK frame or a BA frame modified in accordance with exampleembodiments, for example, as described in more detail below with respectto FIGS. 6A-6B and 7A-7B. For other embodiments, the response frame 420may be any suitable action frame, control frame, or management framethat includes the SIFS information.

The SIFS information may include any information from which device D1may obtain, derive, or determine the actual SIFS duration of device D2.For example, the SIFS information may be the actual SIFS duration ofdevice D2, may be a difference value indicating a time differencebetween the actual SIFS duration and a predetermined SIFS duration(e.g., a “standard” SIFS duration defined by the IEEE 802.11 family ofstandards, and/or may be an average value or a median value of a numberof previously determined SIFS durations of device D2. The SIFSinformation may be expressed as a binary number that corresponds to apredetermined unit of time (e.g., in microseconds).

The SIFS information may be embedded within any suitable field of theresponse frame 420, or may be appended to the response frame 420. Forexample, the SIFS information may be embedded within a number ofreserved bits of the response frame 420, may be embedded in an IEprovided within or appended to the response frame 420, or may beembedded in a VSIE provided within or appended to the response frame420. For at least some embodiments, the SIFS information may be embeddedwithin a new field associated with the response frame 420, for example,as discussed in more detail below with respect to FIGS. 6A-6B and 7A-7B.

At time t₄, device D1 receives the response frame 420 transmitted fromdevice D2, and decodes the SIFS information embedded therein (516).Device D1 may determine the TOA of the response frame 420 (e.g.,TOA_(RES)=t₄), for example, by capturing a timestamp at time t₄ (518).For some implementations, device D1 may execute the timestamp SW module345 of FIG. 3 to capture TOA_(RES), and may store the value of TOA_(RES)in memory 340.

In response to the decoded SIFS information, device D1 may determine theactual SIFS duration of device D2 (520). The actual SIFS duration may beobtained, derived, or determined from the SIFS information provided inthe response frame 420 in any suitable manner, for example, as describedin more detail below with respect to FIGS. 6A-6B and 7A-7B.

Thereafter, device D1 may determine the RTT value of the exchanged dataframe 410 and response frame 420 based on the TOD of the data frame 410,the TOA of the response frame 420, and the actual SIFS duration ofdevice D2 (522). Using the actual SIFS duration of device D2 todetermine the RTT value between devices D1 and D2 may increase accuracyof the ranging operation 400, for example, as compared with rangingoperations that use estimated SIFS durations to determine RTT values(e.g., as depicted in the example ranging operation 100 of FIG. 1A). Inaddition, because device D2 embeds information indicative of its actualSIFS duration in the response frame 420, the ranging operation 400 mayprovide an accurate RTT value using an exchange of only 2 frames, forexample, as compared with the exchange of 8 frames in the exampleranging operation 110 of FIG. 1B. In this manner, the exampleembodiments may allow device D1 to determine more accurate RTTmeasurements than the example ranging operation 100 of FIG. 1A whileusing fewer frame exchanges than the example ranging operation 110 ofFIG. 1B.

For some embodiments, device D1 and/or device D2 may capture timestampsat their respective media access control layers (MACs). For otherembodiments, device D1 and/or device D2 may capture timestamps usingfirmware. Further, for at least some embodiments, device D1 may capturethe timestamp for TOD_(DFR) (at time t₁) as the time when an end of thelast symbol of the data frame 410 is transmitted from device D1; deviceD2 may capture the timestamp for TOA_(DFR) (at time t₂) as the time whenan end of the last symbol of the data frame 410 is received; device D2may capture the timestamp for TOD_(RES) (at time t₃) as the time when abeginning of the first symbol of the response frame 420 is transmittedfrom device D2; and device D1 may capture the timestamp for TOA_(RES)(at time t₄) as the time when a beginning of the first symbol of theresponse frame 420 is received. Then, device D2 may determine its actualSIFS duration as SIFS_(actual)=t₃−t₂, and device D1 may determine theRTT value as RTT=t₄−t₁SIFS_(actual). In this manner, the RTT value maybe determined without regard to the lengths of the data frame 410 andthe response frame 420.

For other embodiments, device D1 may capture timestamps for TOD_(DFR) asthe time when a beginning of the first symbol of the data frame 410 istransmitted from device D1 and/or may capture timestamps for TOA_(RES)as the time when an end of the last symbol of the response frame 420 isreceived. Referring also to FIG. 3, for at least one embodiment, deviceD2 may determine both the TOA of the data frame 410 and the TOD of theresponse frame 420 at the port of a corresponding one of its antennas350(1)-350(n).

As mentioned above, device D2 may report its actual SIFS duration todevice D1 by embedding information indicative of its actual SIFSduration into response frame 420. More specifically, for someembodiments, the response frame 420 may be an ACK frame that is modifiedto include a new field dedicated for storing SIFS information of deviceD2. The modified ACK frame may hereinafter be referred to as an “ACK-RTTframe.”

For example, FIG. 6A shows an example ACK-RTT frame 600 in accordancewith the example embodiments. The ACK-RTT frame 600 may be used as theresponse frame 420 in the example ranging operation 400 depicted in FIG.4. The example ACK-RTT frame 600 may include a 2-byte frame controlfield 601, a 2-byte duration field 602, a 6-byte receiver address (RA)field 603, a 3-byte SIFS delta field 604, and a 4-byte frame controlsequence (FCS) field 605. The frame control field 601 may include a2-bit frame Type field 601A and a 4-bit Sub type field 601B. For otherembodiments, the field lengths of the example ACK-RTT frame 600 may beof other suitable values.

In accordance with the example embodiments, the Type field 601A and theSub type field 601B may each be populated with currently unused orreserved bit patterns to indicate that the corresponding frame is anACK-RTT frame 600, as depicted in FIG. 6A. For example, while a bitpattern of “1101” for the Sub type field 601B indicates an ACK frame(e.g., as defined by the IEEE 802.11 family of standards), a selectedone of the unused or reserved bit patterns for the Sub type field 601Bmay be used to indicate the frame is an ACK-RTT frame 600.

The SIFS delta field 604 is a new field that is not currently defined bythe IEEE 802.11 standards. In accordance with the example embodiments,the SIFS delta field 604 may be used to store a difference valueindicating a difference in time between the actual SIFS duration ofdevice D2 and the “standard” SIFS duration. The difference value, whichmay hereinafter be referred to as the “SIFS delta value,” may beexpressed as SIFS_(delta)=SIFS_(actual)−SIFS_(standard). Thus, forwireless devices operating in the 2.4 GHz frequency band,SIFS_(delta)=SIFS_(actual)−10 us; for wireless devices operating in the5 GHz frequency band, SIFS_(delta)=SIFS_(actual)−16 us; and for wirelessdevice operating in the 60 GHz frequency band,SIFS_(delta)=SIFS_(actual)−3 us.

For example embodiments in which the SIFS delta field 604 includes 3bytes (e.g., 24 bits), the SIFS delta field 604 may store a SIFS deltavalue of +/−900 ns when the per-bit resolution is 0.1 ns. For otherembodiments, the SIFS delta field may include other numbers of bitsand/or the per-bit resolution may be of values other than 0.1 ns.

For other embodiments, the response frame 420 may be a blockacknowledgement (BA) frame that is modified to include the SIFS deltafield 604. The modified BA frame may hereinafter be referred to as a“BA-RTT frame.” For example, FIG. 6B shows an example BA-RTT frame 610in accordance with the example embodiments. The BA-RTT frame 610 may beused as the response frame 420 in the example ranging operation 400depicted in FIG. 4. The example BA-RTT frame 610 may include a 2-byteframe control field 611, a 2-byte duration/ID field 612, a 6-bytereceiver address (RA) field 603, a 6-byte transmitter address (TA) field613, a 3-byte SIFS delta field 604, a 2-byte BA control field 614, avariable-length BA information field 615, and a 4-byte FCS field 605.The frame control field 611 may include a 2-bit frame Type field 611Aand a 4-bit Sub type field 611B. For other embodiments, the fieldlengths of the example BA-RTT frame 610 may be of other suitable values.

In accordance with the example embodiments, the Type field 611A and theSub type field 611B may each be populated with currently unused orreserved bit patterns to indicate that the corresponding frame is aBA-RTT frame 610, as depicted in FIG. 6B. For example, while a bitpattern of “1001” for the Sub type field 611B indicates a BA frame(e.g., as defined by the IEEE 802.11 family of standards), a selectedone of the unused or reserved bit patterns for the Sub type field 611Bmay be used to indicate the frame is a BA-RTT frame 610.

Referencing the actual SIFS duration of device D2 to “standard” SIFSdurations, as described above with respect to FIGS. 6A-6B, may assumethat the “standard” SIFS durations are known by other wireless devicesand/or remain constant. For other embodiments, the actual SIFS durationof device D2 may be referenced to one or more previously determined SIFSdurations of device D2 (e.g., rather than to the “standard” SIFSdurations). For example, the actual SIFS duration may be referenced to amedian value of previously determined SIFS durations of device D2, asdescribed in more detail below with respect to FIGS. 7A-7B.

FIG. 7A shows another example ACK-RTT frame 700 in accordance with theexample embodiments. The ACK-RTT frame 700 is similar to the ACK-RTTframe 600 of FIG. 6A, except that the 3-byte SIFS delta field 604 ofACK-RTT frame 600 is replaced by a 1-byte median SIFS field 704 and a2-byte SIFS delta field 705 in the example ACK-RTT frame 700 of FIG. 7A.The Type field 701A and the Sub type field 701B of ACK-RTT frame 700,which may each be populated with currently unused or reserved bitpatterns that indicate that the corresponding frame is a ACK-RTT frame,may be different than the bit patterns used for the Type field 601A andthe Sub type field 601B of the example ACK-RTT frame 600 described abovewith respect to FIG. 6A.

The 8 bits of the median SIFS field 704 may store a median SIFS durationthat indicates the median SIFS duration for a number of previous frameexchanges associated with device D2. For example, if a 100 ns unit isused for each bit, then the 8 bits of the median SIFS field 704 mayrepresent median SIFS durations up to 25.5 us. The 2-byte SIFS deltafield 705 may be used to indicate a time difference between the actualSIFS duration of the current frame exchange and the median SIFS duration(e.g., as stored in the median SIFS field 704). In this manner, the SIFSdifference value may be expressed asSIFS_(delta)=SIFS_(actual)−SIFS_(median). Applicant notes that if a 0.1ns per-bit resolution is used for SIFS_(delta), then the 16 bits of theSIFS delta field 705 may represent a difference value of +/−900 ns. Forother embodiments, the field lengths of the example ACK-RTT frame 700may be of other suitable values.

The median SIFS information may also be provided in a blockacknowledgement (BA) frame constructed in accordance with the exampleembodiments. For example, FIG. 7B shows another example BA-RTT frame 710in accordance with the example embodiments. The BA-RTT frame 710 issimilar to the BA-RTT frame 610 of FIG. 6B, except that the 3-byte SIFSdelta field 604 of BA-RTT frame 610 is replaced by a 1-byte median SIFSfield 704 and a 2-byte SIFS delta field 705 in the example BA-RTT frame710 of FIG. 7B. The Type field 711A and the Sub type field 711B ofBA-RTT frame 710, which may each be populated with currently unused orreserved bit patterns that indicate that the corresponding frame is aBA-RTT frame, may be different than the bit patterns used for the Typefield 611A and the Sub type field 611B of the example BA-RTT frame 610described above with respect to FIG. 6A. The 1-byte median SIFS field704 and the 2-byte SIFS delta field 705 in the example BA-RTT frame 710are similar to the 1-byte median SIFS field 704 and the 2-byte SIFSdelta field 705 in the example ACK-RTT frame 700 of FIG. 7A. For otherembodiments, the field lengths of the example BA-RTT frame 710 may be ofother suitable values.

For some embodiments, a new information element (IE) may be defined toreport SIFS information of device D2 (or any suitable responder device)to device D1 (or any suitable initiator device). For example, FIG. 8shows an example SIFS IE 800 that, in accordance with the exampleembodiments, may be included in a control frame (or other suitableframe) to report SIFS information to another device. The SIFS IE 800includes a 1-byte element ID field 810, a 1-byte length field 820, a3-byte SIFS report field 830, and a non-extensible field 840. Theelement ID field 810 may store any currently unused or reserved IE IDvalue to indicate that the information element is a SIFS IE 800. Thelength field 820 indicates a length of the SIFS IE 800, which for theexample of FIG. 8 is 5 bytes. The SIFS report field 830 may store either(1) a 3 byte value for SIFS_(delta) or (2) a 1 byte value forSIFS_(median) median and a 2 byte value for SIFS_(delta). For otherembodiments, the various fields of the example SIFS IE 800 may be ofother suitable values.

To maximize ranging accuracy, the ranging operations described hereinmay be performed using a single transmit chain (and a single antenna) inboth the initiator device and the responder device, for example, toavoid errors resulting from cyclic shift diversity (CSD). For someembodiments, a selected bit in the data frame 410 (or any suitable framethat initiates the ranging operation) may be used to request theresponder device to use a single transmit chain when sending theresponse frame 420 (or any suitable frame that includes SIFS informationof the responder device) to the initiator device. The selected bit maybe the reserved bit 4 in the L-SIG field of the data frame 410, any ofthe reserved bits 7-15 in the service field of the data frame 410, orany other suitable bit in the data frame 410.

As mentioned above, device D1 and device D2 may exchange capabilitiesduring an association procedure, for example, to inform each other oftheir ability to support ranging operations in accordance with theexample embodiments. More specifically, the exchanged capabilitiesbetween device D1 and device D2 may indicate whether each devicesupports the creation and/or reception of ACK-RTT frames 600, ACK-RTTframes 700, BA-RTT frames 610, and/or BA-RTT frames 710. When bothdevice D1 and device D2 support using the ACK-RTT frames 600/700 and/orthe BA-RTT frames 610/710 described above, then device D1 and device D2may be configured to acknowledge receipt of data frames from each otherusing the ACK-RTT frames 600/700 and/or the BA-RTT frames 610/710 ratherthan using conventional ACK frames and conventional BA frames,respectively. In this manner, the responder device (e.g., device D2 inthe above examples) may always embed its SIFS information inacknowledgement frames, which in turn allows the initiator device (e.g.,device D1 in the above examples) to perform ranging operations on anyframe exchange, for example, without specifically requesting aparticular ranging operation.

For some embodiments, one of the reserved bits in the extendedcapabilities element of frames exchanged during association may be usedto indicate support of the ACK-RTT and BA-RTT frames disclosed herein.For other embodiments, one of the reserved bits in the data frame 410sent from the initiator device to the responder device (e.g., toinitiate the ranging operation) may be used to indicate whether anACK-RTT frame or a BA-RTT frame is expected in response to the dataframe 410. For one example, reserved bit 4 in the L-SIG field of thedata frame 410 may be used to request a response using an ACK-RTT frameor a BA-RTT frame. For another example, any of the reserved bits 7-15 inthe service field of the data frame 410 may be used to request aresponse using an ACK-RTT frame or a BA-RTT frame.

For embodiments in which the data frame 410 is an FTM frame, one of thebits in the FTM frame may be used to indicate whether an ACK-RTT frameor a BA-RTT frame is expected in response to the FTM frame. For oneexample, reserved bit 4 in the L-SIG field of the FTM frame may be usedto request a response using an ACK-RTT frame or a BA-RTT frame. Foranother example, any of the reserved bits 7-15 in the service field ofthe FTM frame may be used to request a response using an ACK-RTT frameor a BA-RTT frame. For yet another example, a newly added bit in the FTMframe may be used to request a response using an ACK-RTT frame or aBA-RTT frame.

The example embodiments are also applicable to devices compatible withhigh throughput/very high throughput (HT/VHT) protocols of the IEEE802.11 standards. For such devices, one bit in the extended capabilitieselement of association frames, one of the reserved bits in the dataframe 410, reserved bit 4 in the L-SIG field of the data frame 410,and/or any of the reserved bits 7-15 in the service field of the dataframe 410 may be used to indicate support for ACK-RTT frames and BA-RTTframes when operating according to HT/VHT protocols. Alternatively, oneof the bits in an FTM frame sent from the initiator device to theresponder device (e.g., to initiate the ranging operation) may be usedto indicate support for ACK-RTT frames and BA-RTT frames when operatingaccording to HT/VHT protocols. For example, the reserved bit in the FTMframe may be bit 4 in the L-SIG field, may be any of the reserved bits7-15 in the service field, and/or may be a newly added bit in the FTMframe.

The example embodiments are also applicable toready-to-send/clear-to-send (RTS/CTS) frame exchanges, for example,where the responder device may report its SIFS information to theinitiator device in the CTS frame. The example embodiments are alsoapplicable to control frames and data frames. For example, when an APsends a trigger frame to multiple STAs to request uplink multi-user (MU)frames, the STAs may report their SIFS information in the MU frames, forexample, as a special element.

FIG. 9 shows an example first wireless device or apparatus 900represented as a series of interrelated functional modules. A module 901for sending a data frame to a second wireless device may correspond atleast in some aspects to, for example, a processor as discussed herein(e.g., processor 330) and/or to one or more transceivers discussedherein (e.g., transceivers 320). A module 902 for determining a time ofdeparture (TOD) of the data frame 410 may correspond at least in someaspects to, for example, a processor as discussed herein (e.g.,processor 330). A module 903 for receiving a response frame 420 from thesecond wireless device may correspond at least in some aspects to, forexample, a processor as discussed herein (e.g., processor 330) and/or toone or more transceivers discussed herein (e.g., transceivers 320). Amodule 904 for determining a time of arrival (TOA) of the response frame420 may correspond at least in some aspects to, for example, a processoras discussed herein (e.g., processor 330). A module 905 for determininga round trip time (RTT) of the data frame 410 and the response frame 420may correspond at least in some aspects to, for example, a processor asdiscussed herein (e.g., processor 330).

The functionality of the modules of FIG. 9 may be implemented in variousways consistent with the teachings herein. In some designs, thefunctionality of these modules may be implemented as one or moreelectrical components. In some designs, the functionality of theseblocks may be implemented as a processing system including one or moreprocessor components. In some designs, the functionality of thesemodules may be implemented using, for example, at least a portion of oneor more integrated circuits (e.g., an ASIC). As discussed herein, anintegrated circuit may include a processor, software, other relatedcomponents, or some combination thereof. Thus, the functionality ofdifferent modules may be implemented, for example, as different subsetsof an integrated circuit, as different subsets of a set of softwaremodules, or a combination thereof. Also, it will be appreciated that agiven subset (e.g., of an integrated circuit and/or of a set of softwaremodules) may provide at least a portion of the functionality for morethan one module.

In addition, the components and functions represented by FIG. 9, as wellas other components and functions described herein, may be implementedusing any suitable means. Such means also may be implemented, at leastin part, using corresponding structure as taught herein. For example,the components described above in conjunction with the “module for”components of FIG. 9 also may correspond to similarly designated “meansfor” functionality. Thus, in some aspects one or more of such means maybe implemented using one or more of processor components, integratedcircuits, or other suitable structure as taught herein.

Those of skill in the art will appreciate that information and signalsmay be represented using any of a variety of different technologies andtechniques. For example, data, instructions, commands, information,signals, bits, symbols, and chips that may be referenced throughout theabove description may be represented by voltages, currents,electromagnetic waves, magnetic fields or particles, optical fields orparticles, or any combination thereof.

Further, those of skill in the art will appreciate that the variousillustrative logical blocks, modules, circuits, and algorithm stepsdescribed in connection with the aspects disclosed herein may beimplemented as electronic hardware, computer software, or combinationsof both. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules, circuits,and steps have been described above generally in terms of theirfunctionality. Whether such functionality is implemented as hardware orsoftware depends upon the particular application and design constraintsimposed on the overall system. Skilled artisans may implement thedescribed functionality in varying ways for each particular application,but such implementation decisions should not be interpreted as causing adeparture from the scope of the disclosure.

The methods, sequences or algorithms described in connection with theaspects disclosed herein may be embodied directly in hardware, in asoftware module executed by a processor, or in a combination of the two.A software module may reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of storage medium known in the art. An examplestorage medium is coupled to the processor such that the processor canread information from, and write information to, the storage medium. Inthe alternative, the storage medium may be integral to the processor.

Accordingly, one aspect of the disclosure may include a non-transitorycomputer readable media embodying a method for time and frequencysynchronization in non-geosynchronous satellite communication systems.The term “non-transitory” does not exclude any physical storage mediumor memory and particularly does not exclude dynamic memory (e.g.,conventional random access memory (RAM)) but rather excludes only theinterpretation that the medium can be construed as a transitorypropagating signal.

In the foregoing specification, the example embodiments have beendescribed with reference to specific example embodiments thereof. Itwill, however, be evident that various modifications and changes may bemade thereto without departing from the broader scope of the disclosureas set forth in the appended claims. The specification and drawings are,accordingly, to be regarded in an illustrative sense rather than arestrictive sense. For example, method steps depicted in the flow chartsof FIG. 5 may be performed in other suitable orders and/or one or moremethod steps may be omitted.

What is claimed is:
 1. A method of performing a ranging operationbetween an initiator device and a responder device, the method performedby one or more processors of the responder device and comprising:receiving, from the initiator device, a data frame including a requestfor the responder device to report its actual Short Interframe Space(SIFS) duration to the initiator device; creating a response frame;determining the actual SIFS duration based on the received data frameand the response frame; embedding SIFS information indicative of theactual SIFS duration of the responder device into the response frame;and sending the response frame to the initiator device.
 2. The method ofclaim 1, wherein determining the actual SIFS duration comprises:determining a time of arrival (TOA) of the data frame; determining atime of departure (TOD) of the response frame; and determining theactual SIFS duration based at least in part on the determined TOA of thedata frame and the determined TOD of the response frame.
 3. The methodof claim 1, wherein the actual SIFS duration indicates a time durationbetween (1) a time that the responder device receives an end of a lastsymbol of the data frame from the initiator device and (2) a time thatthe responder device transmits a beginning of a first symbol of theresponse frame to the initiator device.
 4. The method of claim 1,wherein the data frame comprises a fine timing measurement (FTM) frame.5. The method of claim 1, wherein the data frame further comprises arequest for the responder device to transmit the response frame using ahigh throughput (HT) or a very high throughput (VHT) protocol.
 6. Themethod of claim 1, wherein the response frame comprises anacknowledgement (ACK) frame including a field to store the SIFSinformation.
 7. The method of claim 1, wherein the SIFS informationcomprises a difference value indicative of a time difference between theactual SIFS duration and a standard SIFS duration.
 8. The method ofclaim 7, wherein the standard SIFS duration is defined by the IEEE802.11 standards.
 9. The method of claim 7, wherein the response framecomprises an acknowledgement (ACK) frame including a first field tostore the difference value and including a second field to store amedian SIFS duration of the responder device.
 10. The method of claim 1,wherein: the data frame further comprises a request for the responderdevice to use a single transmit chain to transmit the response frame tothe initiator device.
 11. A responder device configured to perform aranging operation with an initiator device, the responder devicecomprising: one or more transceivers to exchange signals with at leastthe initiator device; one or more processors; and a memory storinginstructions that, when executed by the one or more processors, causethe responder device to: receive, from the initiator device, a dataframe including a request for the responder device to report its actualShort Interframe Space (SIFS) duration to the initiator device; create aresponse frame; determine the actual SIFS duration of the responderdevice based on the received data frame and the response frame; embedSIFS information indicative of the actual SIFS duration into theresponse frame; and send the response frame to the initiator device. 12.The responder device of claim 11, wherein execution of the instructionsto determine the actual SIFS duration causes the responder device to:determine a time of arrival (TOA) of the data frame; determine a time ofdeparture (TOD) of the response frame; and determine the actual SIFSduration based at least in part on the determined TOA of the data frameand the determined TOD of the response frame.
 13. The responder deviceof claim 11, wherein the data frame comprises a fine timing measurement(FTM) frame.
 14. The responder device of claim 11, wherein the dataframe further comprises a request for the responder device to transmitthe response frame using a high throughput (HT) or a very highthroughput (VHT) protocol.
 15. The responder device of claim 11, whereinthe response frame comprises an acknowledgement (ACK) frame including afield to store the SIFS information.
 16. The responder device of claim11, wherein the SIFS information comprises a difference value indicativeof a time difference between the actual SIFS duration and a standardSIFS duration.
 17. The responder device of claim 16, wherein theresponse frame comprises an acknowledgement (ACK) frame including afirst field to store the difference value and including a second fieldto store a median SIFS duration of the responder device.
 18. Theresponder device of claim 11, wherein: the data frame further comprisesa request for the responder device to use a single transmit chain totransmit the response frame to the initiator device.
 19. A responderdevice configured to perform a ranging operation with an initiatordevice, the responder device comprising: means for receiving, from theinitiator device, a data frame including a request for the responderdevice to report its actual Short Interframe Space (SIFS) duration tothe initiator device; means for creating a response frame; means fordetermining the actual SIFS duration of the responder device based onthe received data frame and the response frame; means for embedding SIFSinformation indicative of the actual SIFS duration into the responseframe; and means for sending the response frame to the initiator device.20. The responder device of claim 19, wherein the means for determiningthe actual SIFS duration is to: determine a time of arrival (TOA) of thedata frame; determine a time of departure (TOD) of the response frame;and determine the actual SIFS duration based at least in part on thedetermined TOA of the data frame and the determined TOD of the responseframe.
 21. The responder device of claim 19, wherein the data framecomprises a fine timing measurement (FTM) frame.
 22. The responderdevice of claim 19, wherein the response frame comprises anacknowledgement (ACK) frame including a field to store the SIFSinformation.
 23. The responder device of claim 19, wherein the SIFSinformation comprises a difference value indicative of a time differencebetween the actual SIFS duration and a standard SIFS duration.
 24. Theresponder device of claim 23, wherein the response frame comprises anacknowledgement (ACK) frame including a first field to store thedifference value and including a second field to store a median SIFSduration of the responder device.
 25. A non-transitory computer-readablestorage medium storing one or more programs containing instructionsthat, when executed by one or more processors of a responder device,cause the responder device to perform operations comprising: receiving,from the initiator device, a data frame including a request for theresponder device to report its actual Short Interframe Space (SIFS)duration to the initiator device; creating a response frame; determiningthe actual SIFS duration based on the received data frame and theresponse frame; embedding SIFS information indicative of the actual SIFSduration into the response frame; and sending the response frame to theinitiator device.
 26. The non-transitory computer-readable storagemedium of claim 25, wherein execution of the instructions to determinethe actual SIFS duration causes the responder device to: determine atime of arrival (TOA) of the data frame; determine a time of departure(TOD) of the response frame; and determine the actual SIFS durationbased at least in part on the determined TOA of the data frame and thedetermined TOD of the response frame.
 27. The non-transitorycomputer-readable storage medium of claim 25, wherein the data framecomprises a fine timing measurement (FTM) frame.
 28. The non-transitorycomputer-readable storage medium of claim 25, wherein the response framecomprises an acknowledgement (ACK) frame including a field to store theSIFS information.
 29. The non-transitory computer-readable storagemedium of claim 25, wherein the SIFS information comprises a differencevalue indicative of a time difference between the actual SIFS durationand a standard SIFS duration.
 30. The non-transitory computer-readablestorage medium of claim 29, wherein the response frame comprises anacknowledgement (ACK) frame including a first field to store thedifference value and including a second field to store a median SIFSduration of the responder device.